﻿using System;
namespace Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg {
    
    
    public partial class OsapantType : global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IOsapantType {
        
        private System.Collections.Generic.List<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IKapitaliOmanikType> @__pandipidajad = new System.Collections.Generic.List<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IKapitaliOmanikType>();
        
        private global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XPandiliik @__liik;
        
        private short @__jarjekoht;
        
        private global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XOmandiliik @__omandiliik;
        
        private System.DateTime @__algus;
        
        private System.DateTime? @__lopp;
        
        public OsapantType() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public OsapantType(System.Collections.Generic.List<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IKapitaliOmanikType> @pandipidajad, global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XPandiliik @liik, short @jarjekoht, global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XOmandiliik @omandiliik, System.DateTime @algus, System.DateTime? @lopp) {
            this.@__pandipidajad = @pandipidajad;
            this.@__liik = @liik;
            this.@__jarjekoht = @jarjekoht;
            this.@__omandiliik = @omandiliik;
            this.@__algus = @algus;
            this.@__lopp = @lopp;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public OsapantType(System.Collections.Generic.List<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IKapitaliOmanikType> @pandipidajad, global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XPandiliik @liik, short @jarjekoht, global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XOmandiliik @omandiliik, System.DateTime @algus) {
            this.@__pandipidajad = @pandipidajad;
            this.@__liik = @liik;
            this.@__jarjekoht = @jarjekoht;
            this.@__omandiliik = @omandiliik;
            this.@__algus = @algus;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected OsapantType(IOsapantType @osapantType) {
            this.@__pandipidajad = @osapantType.Pandipidajad;
            this.@__liik = @osapantType.Liik;
            this.@__jarjekoht = @osapantType.Jarjekoht;
            this.@__omandiliik = @osapantType.Omandiliik;
            this.@__algus = @osapantType.Algus;
            this.@__lopp = @osapantType.Lopp;
        }
        
        public virtual System.Collections.Generic.List<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IKapitaliOmanikType> Pandipidajad {
            get {
                return this.@__pandipidajad;
            }
            set {
                this.@__pandipidajad = value;
            }
        }
        
        public virtual global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XPandiliik Liik {
            get {
                return this.@__liik;
            }
            set {
                this.@__liik = value;
            }
        }
        
        public virtual short Jarjekoht {
            get {
                return this.@__jarjekoht;
            }
            set {
                this.@__jarjekoht = value;
            }
        }
        
        public virtual global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XOmandiliik Omandiliik {
            get {
                return this.@__omandiliik;
            }
            set {
                this.@__omandiliik = value;
            }
        }
        
        public virtual System.DateTime Algus {
            get {
                return this.@__algus;
            }
            set {
                this.@__algus = value;
            }
        }
        
        public virtual System.DateTime? Lopp {
            get {
                return this.@__lopp;
            }
            set {
                this.@__lopp = value;
            }
        }
    }
}
